#!/bin/sh
# Begin /etc/init.d/mountfs

### BEGIN INIT INFO
# Provides:            $local_fs
# Required-Start:      udev checkfs
# Should-Start:
# Required-Stop:       swap
# Should-Stop:
# Default-Start:       S
# Default-Stop:        0 6
# Short-Description:   Mounts/unmounts local filesystems defined in /etc/fstab.
# Description:         Remounts root filesystem read/write and mounts all
#                      remaining local filesystems defined in /etc/fstab on
#                      start.  Remounts root filesystem read-only and unmounts
#                      remaining filesystems on stop.
# X-LFS-Default-Start: S40
# X-LFS-Default-Stop:  S70
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

case "${1}" in
    start)
        message="Remounting root file system in read-write mode..."
        mount -n -o remount,rw / >/dev/null
        evaluate_retval standard

        # Remove fsck-related file system watermarks.
        rm -f /fastboot /forcefsck

        message="Recording existing mounts in /etc/mtab..."
        > /etc/mtab
        mount -f / || failed=1
        mount -f /proc || failed=1
        mount -f /sys || failed=1
        (exit ${failed})
        evaluate_retval standard

        # This will mount all filesystems that do not have _netdev in
        # their option list.  _netdev denotes a network filesystem.
        message="Mounting remaining file systems..."
        mount -a -O no_netdev >/dev/null
        evaluate_retval standard
        ;;

    stop)
        message="Unmounting all other currently mounted file systems..."
        umount -a -d -r >/dev/null
        evaluate_retval standard
        ;;

    *)
        echo "Usage: ${0} {start|stop}"
        exit 1
        ;;
esac

# End /etc/init.d/mountfs
